home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / LOGO / H282.ZIP / MSWLOGO.ZIP / EXAMPLES.ZIP / CALC.WIN < prev    next >
Encoding:
Text File  |  1993-02-21  |  2.6 KB  |  73 lines

  1. to calc
  2. local "marx make "marx 5
  3. local "mary make "mary 20
  4. local "sizx make "sizx 10
  5. local "sizy make "sizy 10
  6. local "wnx make "wnx 100
  7. local "wny make "wny 90
  8.  
  9. dialogcreate "main "calc [Calculator] 0 0 :wnx :wny
  10.  
  11. comboboxcreate "calc "c1 :marx 5 :sizx*9 12
  12.  
  13. buttoncreate "calc "bd ". :marx+:sizx*0 :mary+:sizy*3 :sizx :sizy [number ".]
  14. buttoncreate "calc "b0 "0 :marx+:sizx*1 :mary+:sizy*3 :sizx :sizy [number 0]
  15. buttoncreate "calc "bn "- :marx+:sizx*2 :mary+:sizy*3 :sizx :sizy [negate]
  16. buttoncreate "calc "b1 "1 :marx+:sizx*0 :mary+:sizy*2 :sizx :sizy [number 1]
  17. buttoncreate "calc "b2 "2 :marx+:sizx*1 :mary+:sizy*2 :sizx :sizy [number 2]
  18. buttoncreate "calc "b3 "3 :marx+:sizx*2 :mary+:sizy*2 :sizx :sizy [number 3]
  19. buttoncreate "calc "b4 "4 :marx+:sizx*0 :mary+:sizy*1 :sizx :sizy [number 4]
  20. buttoncreate "calc "b5 "5 :marx+:sizx*1 :mary+:sizy*1 :sizx :sizy [number 5]
  21. buttoncreate "calc "b6 "6 :marx+:sizx*2 :mary+:sizy*1 :sizx :sizy [number 6]
  22. buttoncreate "calc "b7 "7 :marx+:sizx*0 :mary+:sizy*0 :sizx :sizy [number 7]
  23. buttoncreate "calc "b8 "8 :marx+:sizx*1 :mary+:sizy*0 :sizx :sizy [number 8]
  24. buttoncreate "calc "b9 "9 :marx+:sizx*2 :mary+:sizy*0 :sizx :sizy [number 9]
  25.  
  26. buttoncreate "calc "bm "* :marx+:sizx*4 :mary+:sizy*0 :sizx :sizy [state 1]
  27. buttoncreate "calc "bq "/ :marx+:sizx*4 :mary+:sizy*1 :sizx :sizy [state 2]
  28. buttoncreate "calc "ba "+ :marx+:sizx*4 :mary+:sizy*2 :sizx :sizy [state 3]
  29. buttoncreate "calc "bs "- :marx+:sizx*4 :mary+:sizy*3 :sizx :sizy [state 4]
  30.  
  31. buttoncreate "calc "be "= :marx+:sizx*4 :mary+:sizy*4+:sizy/2 :sizx :sizy [dofunction]
  32. buttoncreate "calc "bc "CLEAR :marx :mary+:sizy*4+:sizy/2 :sizx*3 :sizy [clear]
  33.  
  34. buttoncreate "calc "bend "CLOSE :marx+:sizx*6 :mary+:sizy*4+:sizy/2 :sizx*3 :sizy [myend]
  35. end
  36.  
  37. to clear
  38. make "function 0
  39. make "firstarg 0
  40. comboboxsettext "c1 []
  41. end
  42.  
  43. to dofunction
  44. local "answer
  45. local "secondarg make "secondarg comboboxgettext "c1
  46. if :function = 1 [make "answer  (first :firstarg) * (first :secondarg)]
  47. if :function = 2 [make "answer  (first :firstarg) / (first :secondarg)]
  48. if :function = 3 [make "answer  (first :firstarg) + (first :secondarg)]
  49. if :function = 4 [make "answer  (first :firstarg) - (first :secondarg)]
  50. comboboxsettext "c1 :answer
  51. end
  52.  
  53. to myend
  54. dialogdelete "calc
  55. end
  56.  
  57. to negate
  58. comboboxsettext "c1 ((first (comboboxgettext "c1)) * -1)
  59. end
  60.  
  61. to number :arg
  62. local "temp make "temp comboboxgettext "c1
  63. ifelse :temp = []~
  64.   [comboboxsettext "c1 :arg]~
  65.   [comboboxsettext "c1 word first :temp :arg]
  66. end
  67.  
  68. to state :arg
  69. make "function :arg
  70. make "firstarg comboboxgettext "c1
  71. comboboxsettext "c1 []
  72. end
  73.